package com.wangsd.web.coupon.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.wangsd.common.exception.BusinessException;
import com.wangsd.web.coupon.entity.Company;
import com.wangsd.web.coupon.entity.Coupon;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wangsd.web.coupon.entity.Member;
import com.wangsd.web.coupon.entity.ServiceBusiness;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author generator
 * @since 2019-09-24
 */
public interface CouponService extends IService<Coupon> {

    /**
     * 添加或修改优惠券
     */
    void addOrUpdate(Coupon entity);

    /**
     * 查询优惠券列表数据
     */
    IPage<Coupon> selectPage(String code, Integer pageNum, Integer pageSize, Coupon coupon);

    /**
     * 通过批次号查询优惠券是否重复
     */
    Coupon selectRepeat(String couponStockId, String id);

    /**
     * 上架下架
     */
    int updateState(Coupon coupon);

    /**
     * 通过优惠卷id查询门店信息
     */
    List<String> selectStoreById(String id);

    /**
     * 查询用户领取的优惠券
     */
    IPage<Coupon> getHaveCoupon(Integer pageNum, Integer pageSize, String openid, Integer state);


    /**
     * 通过优惠券id查询当天可以领取的优惠券
     */
    List<Coupon> selectCouponListByCompanyId(Coupon coupon);

    /**
     * 一键领取优惠券
     */
   int quickReceiveCoupon(ServiceBusiness serviceBusiness, Coupon coupon, Member member, Company company) throws BusinessException ;


    /**
     * 云支付回调核销优惠券
     */
    int saveTrade(JSONObject requestContent);
}
